Linux 环境变量

显示环境变量

1
echo $[变量名]

        示例:

1
2
echo $HOME
/root

设置一个新的环境变量

1
2
3
$ export HELLO="Hello!"
$ echo $HELLO
Hello!

查看全局环境变量命令:env

        使用 env 命令显示所有的环境变量

1
2
3
4
5
6
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000

查看所有环境变量命令:set

        使用 set 命令显示所有本地定义的 shell 变量

1
2
3
4
5
6
7
8
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=80
DIRSTACK=()
DISPLAY=:0.0

删除一个变量:unset

        命令

1
unset [变量名]

        只针对当前会话

        set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:

1
2
3
4
5
$ export TEST="Test..." #增加一个环境变量TEST
$ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
$ unset $TEST #删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了

使用 readonly 命令设置只读变量

        如果使用了 readonly 命令,变量就不可以被修改或清除了
        示例如下:

1
2
3
4
5
6
$ export TEST="Test..." #增加一个环境变量TEST
$ readonly TEST #将环境变量TEST设为只读
$ unset TEST #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #会发现此也变量不能被修改
-bash: TEST: readonly variable

        环境变量的设置位于 /etc/profile 文件,如果需要增加新的环境变量可以添加下属行

1
export PATH=$PATH:/PATH1:/PATH2:/PATHN

Linux 的变量种类

        按变量的生存周期来划分,Linux 变量可范围两类:
        1、永久的:需要修改配置文件,变量永久生效。
        2、临时的:使用 export 命令声明即可,变量在关闭 shell 时失效。

环境变量的配置文件

        全局: /etc/profile

        局部: ~/.bash_profile

设置变量的方法

1.在 /etc/profile 文件中添加变量{对所有用户生效(永久的)}

        用 vim 在文件 /etc/profile 文件中增加变量,该变量将会对 Linux下 所有用户有效,并且是“永久的”。
        例如:编辑 /etc/profile 文件,添加CLASSPATH变量

1
2
# vim /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

        注:修改文件后要想马上生效还要运行

1
# source /etc/profile

        不然只能在下次重进此用户时生效

2.在用户目录下个 .bash_profile 文件中增加变量{对单一用户生效(永久的)}

        用 vim在用户目录下的 .bash_profile 文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
        例如:编辑guok用户目录(/home/guok)下的.bash_profile

1
$ vim /home/guok/.bash.profile

        添加如下内容

1
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

        注:修改文件后要想马上生效还要运行

1
$ source /home/guok/.bash_profile

        不然只能在下次重进此用户时生效

3.直接运行 export 命令定义变量{只对当前 shell (BASH)有效(临时的)}

1
2
export JAVA_HOME=/usr/local/java #添加新变量名
export PATH=$PATH:/usr/local/php/bin #修改已有变量名

常用的环境变量

        PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列以冒号分割的目录
注意:最好不要把 “./“ 放到 PATH 中,这样会引起安全问题

        HOME:当前用户主目录

        HISTSIZE:历史记录数

        LOGNAME:当前用户的登录名

        HOSTNAME:指主机的名称

        SHELL:当前用户Shell类型

        LANGUGE:语言相关的环境变量,多语言可以修改此环境变量

        MAIL    当前用户的邮件存放目录

        PS1:[\u@\h \W]\$     基本提示符,对于root用户是#,对于普通用户是$

        PS2:敲错以后进入的符号

PATH 声明,其格式为

1
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>